package edu.service.impl;

import edu.service.CourseTypeService;
import edu.vo.CourseType;
import edu.repository.CourseTypeRepository;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Optional;

@Service
public class CourseTypeServiceImpl implements CourseTypeService {

    private final CourseTypeRepository courseTypeRepository;

    public CourseTypeServiceImpl(CourseTypeRepository courseTypeRepository) {
        this.courseTypeRepository = courseTypeRepository;
    }

    @Override
    public CourseType saveCourseType(CourseType courseType) {
        return courseTypeRepository.save(courseType);
    }

    @Override
    public Optional<CourseType> getCourseTypeById(Integer id) {
        return courseTypeRepository.findById(id);
    }

    @Override
    public List<CourseType> getAllCourseTypes() {
        return courseTypeRepository.findAll();
    }

    @Override
    public void deleteCourseTypeById(Integer id) {
        courseTypeRepository.deleteById(id);
    }

    @Override
    public CourseType updateCourseType(Integer id, CourseType courseType) {
        return courseTypeRepository.findById(id)
                .map(existingCourseType -> {
                    existingCourseType.setTypeName(courseType.getTypeName());
                    existingCourseType.setDescription(courseType.getDescription());
                    return courseTypeRepository.save(existingCourseType);
                })
                .orElse(null);
    }
}